Recently, a virtualization technique to cause a virtual computer called a virtual machine (VM: Virtual Machine) to operate on a physical server has been used. As one of functions in this virtualizing technique, there is Live Migration to cause a VM operating on a certain physical server to migrate to another physical server without stopping applications. This Live Migration function is used in a cloud or a data center environment, in which free migration of VMs are expected.
When a VM is migrated by Live Migration, a port profile for the VM which is a migration target is also migrated in accordance with the migration of the VM. This port profile includes information on VLAN (Virtual LAN (Local Area Network)), QoS (Quality of Service), and the like. There is a protocol defined by IEEE802.1Qbg as a method to notify a switch side of the migration of this port profile and to automatically change a definition of a network environment in accordance with the migration of the VM.
IEEE802.1Qbg defines a protocol called VDP (VSI (Virtual Station Interface) Discovery and Configuration Protocol). A notification (DE-ASSOC message) to notify deletion of a profile due to disappearance of a VM from an interface of a migration source server of the VM, a notification (ASSOC message) to notify registration of the profile due to activation of the VM from an interface of a migration destination server of the VM, and the like are defined. Then, a database for the profile is kept in a switch, and when these messages are received in the switch side, application of the profile or the like is automatically performed according to the messages.
Moreover, as expansion of VDP, there is a technique to handle a case of cascaded switches as illustrated in FIG. 1 by performing processing as illustrated in FIGS. 2 and 3.
A system illustrated in FIG. 1 includes a blade server 10, a blade server 40, an external switch 60, and a port profile DB (database) server 5.
The port profile DB server 5 stores system requirements for VMs in association with VMs operating on each blade server. For example, the port profile DB server 5 stores information on a VLAN, QoS, bandwidth that has been allocated and the like for a VM.
The blade server 10 and the blade server 40 are servers that mount plural servers in their housing, which are called “Blade” and are capable of being inserted and being removed. For example, as illustrated in FIG. 1, the blade server 10 includes CPU (Central Processing Unit) servers 11 to 13 and a switch blade 20, and the blade server 40 includes CPU servers 41 and 42 and a switch blade 50.
A CPU server which each blade server includes is a server capable of being inserted and being removed as described above, and causes a VM to operate by executing a VMM (Virtual Machine Monitor) called hypervisor. For example, each CPU server exchanges data among other CPU servers and other VMs by causing a VM and a virtual switch to operate by the VMM. In FIG. 1, as one example, VMs 1 and 2 operate on the CPU server 11 included in the blade server 10, VMs 3 and 4 operate on the CPU server 12 included in the blade server 10, VMs 5 and 6 operate on the CPU server 13 included in the blade server 10. Moreover, VM 8 operates on the CPU server 41 included in the blade server 40, and VM 9 operates on the CPU server 42 included in the blade server 40.
A switch blade that each blade server has controls communication inside a blade server and communication between blade servers by using techniques such as Ethernet (registered trademark) and Fibre Channel. For example, the switch blade 20 relays data exchanged between the VM 1 on the CPU server 11 and the VM 5 on the CPU server 13, and controls communication inside a blade server. Moreover, the switch blades 20 and 50 relay data exchanged between the VM 3 on the CPU server 12 and the VM 8 on the CPU server 41 through the external switch 60, and control communication between blade servers.
The external switch 60 is connected to a switch blade in each blade server, and is a data relay apparatus such as a layer 2 switch that controls communication between blade servers. For example, the external switch 60 has the same function as the switch blades 20 and 50, and relays data exchanged between the switch blades 20 and 50.
Next, by using FIGS. 2 and 3, processing performed when the VM 2 on the CPU server 11 migrates to the CPU server 41 will be explained. In other words, the CPU server 11 is considered as a migration source server, and the CPU server 41 is considered as a migration destination server. Moreover, a migration source switch blade is considered as the switch blade 20 in the same blade server as the CPU server 11, and a migration destination switch blade is considered as the switch blade 50 in the same blade server as the CPU server 41.
In such a state, as illustrated in FIG. 2, when the VMM on the CPU server 41 accepts an instruction operation from an administrator or the like, it generates a new VM on the own server (S101). Next, when the VMM on the CPU server 11 accepts a live migration instruction from a management terminal or the like (S102), it performs pre-copy in a state that a migration target VM is operating on the own server (S103 and S104).
When pre-copy starts, the VMM on the CPU server 41 transmits a PRE-ASSOC message of VDP to the switchblade 50 (S105). The switch blade 50 determines that the VM migrates over blade servers based on a VSIID (an ID of the VSI) included in the received PRE-ASSOC message, and transfers the received PRE-ASSOC message to the external switch 60 (S106).
The external switch 60 which is a transfer destination of the message obtains a port profile corresponding to the VSIID included in the PRE-ASSOC message from the port profile DB server 5, and stores it in a port profile table (S107). Then, the external switch 60 transmits a PRE-ASSOC CONF message to the switch blade 50 as a response to the PRE-ASSOC message (S108). Then, the switch blade 50 transfers the PRE-ASSOC CONF message received from the external switch 60 to the CPU server 41 which is a transmission source of the PRE-ASSOC message (S109).
Later, when an amount of change of a memory is equal to or less than a predetermined value, the VMM on the CPU server 41 performs stop and copy (S110 and S111).
Shifting to the explanation of the processing in FIG. 3, when stop and copy starts, the VMM on the CPU server 41 transmits an ASSOC message of VDP to the switch blade 50 (S112). The switch blade 50 determines that the VM migrates over blade servers based on a VSIID included in the received ASSOC message, and transfers the received ASSOC message to the external switch 60 (S113).
The external switch 60 which is a transfer destination of the message updates a VSI table corresponding to the VSIID included in the ASSOC message, and applies a port profile (S114). Then, the external switch 60 transmits an ASSOC CONF message to the switch blade 50 as a response to the ASSOC message (S115). Then, the switchblade 50 transfers the ASSOC CONF message received from the external switch 60 to the CPU server 41 which is a transmission source of the ASSOC message (S116).
On the other hand, the VMM on the CPU server 11 transmits a DE-ASSOC message of VDP to the switch blade 20 (S117). The switch blade 20 determines that the VM migrates over blade servers based on a VSIID included in the received DE-ASSOC message, and transfers the received DE-ASSOC message to the external switch 60 (S118).
The external switch 60 which is a transfer destination of the message identifies a port profile corresponding to the VSIID included in the DE-ASSOC message from the VSI table, and deletes the identified port profile (S119). Then, the external switch 60 transmits a DE-ASSOC CONF message to the switch blade 20 as a response to the DE-ASSOC message (S120).
Then, the switch blade 20 transfers the DE-ASSOC CONF message received from the external switch 60 to the CPU server 11 which is a transmission source of the DE-ASSOC message (S121).
However, there are plural network interfaces on a physical server, and there's a case where their links are set as LAG (Link Aggregation) and are dispersedly used. In other words, when the physical server side is set as LAG, a physical line among the ports set as LAG is selected and the frame of VDP is outputted only to the line because the plural set ports are treated as one logical port and a frame of VDP is transmitted to the logical port.
When LAG is used in the physical server side, it does not matter when the number of switches which are connection destinations is 1. However, there is a case where each physical link is connected to a different switch from the view for redundancy, and the lines are sometimes set as MLAG (Multi-chassis Link Aggregation) in the switch side. It is impossible for the aforementioned technique to handle a case that such MLAG has been set.
Patent Document 1: International Publication Pamphlet No. WO 2012/093495